package br.com.foxinline.servico;

import br.com.foxinline.modelo.Livro;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.Query;


/**
 *
 * @author cadomeireles
 */
@Stateless
public class LivroServico extends ServicoGenerico<Livro> {
    
    public LivroServico() {
        super(Livro.class);
    }

    public List<Livro> pesquisar(Livro livro) {
        String sql = "select livro from Livro livro where livro.ativo = true";
        
        if (livro.getTitulo() != null && !livro.getTitulo().isEmpty()) {
            sql += " and lower(livro.titulo) like '%" + livro.getTitulo().toLowerCase().trim() + "%'";
        }
        
        Query query = getEntityManager().createQuery(sql);

        return query.getResultList();        
    }

    @Override
    public void deletar(Livro livro) {
        livro.setAtivo(false);
        super.atualizar(livro);
    }

    public List<Livro> autocompletar(String query) {
        return buscarPeloTitulo(query);
    }

    public List<Livro> buscarPeloTitulo(String query) {
        List<Livro> livros = getEntityManager().createQuery("select livro from " + Livro.class.getSimpleName() + " livro where lower(livro.titulo) like '%" + query.toLowerCase().trim() + "%'").getResultList();
        return livros;
    }    
    
}
